package com.leetcode.twoPoint;

//移动零
public class lc_283 {
    //给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。
    public static void main(String[] args) {
        int[] nums = {1,0,0,0,2};
        moveZeroes(nums);
        for (int num : nums) {
            System.out.println(num);
        }
    }

    public static void moveZeroes(int[] nums) {
        int nonZeroIndex = 0;  // 指向下一个应放置非 0 元素的位置

        // 遍历数组，将非零元素移到数组前面
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != 0) {
                nums[nonZeroIndex] = nums[i];
                nonZeroIndex++;
            }
            //等于0的情况不用管,直接往后遍历,反正不用担心覆盖的问题
        }

        // 将剩余的位置置为 0
        for (int i = nonZeroIndex; i < nums.length; i++) {
            nums[i] = 0;
        }
    }
}
